package cn.sumpu.app.guoguojie.biz;

import java.util.List;
import java.util.Map;

import cn.sumpu.app.guoguojie.domain.Member;
import cn.sumpu.app.guoguojie.domain.Order;
import cn.sumpu.app.guoguojie.domain.OrderProduct;
import cn.sumpu.app.guoguojie.domain.Product;
import cn.sumpu.app.guoguojie.exception.AppBusinessException;
import cn.sumpu.app.guoguojie.util.PageModel;

public interface ProductBiz {

	//
	public void insertNewProduct(Product product)throws AppBusinessException;
	//
	public List<Product> selectProductList(Map<String, Object> map)throws AppBusinessException;
	//
	public Integer countProductList(Map<String,Object> map)throws AppBusinessException;
	//
	public void deleteProductById(String identifier)throws AppBusinessException;
	//
	public Product selectProduct(String identifier)throws AppBusinessException;
	//
	public void updateProductById(Product product)throws AppBusinessException;
	//
	public void insertOrder(Order order,OrderProduct orderProduct)throws AppBusinessException;
	//
	public void insertOrderForRed(Order order,OrderProduct orderProduct)throws AppBusinessException;
	//
	public PageModel selectOrderListPageModel(Integer page,String familyId,String startDate,String endDate)throws AppBusinessException;
	//
	public void updateOrderStatus(String identifier,String status)throws AppBusinessException;
	//
	public Order selectViewOrder(String orderId)throws AppBusinessException;
	//
	public void updateOrderByOrderId(Order order,OrderProduct orderProduct)throws AppBusinessException;
	//
	public void recommendProduct(String productId)throws AppBusinessException;
	//
	public Product selectRecommendProduct()throws AppBusinessException;
	//
	public void order(Order order,OrderProduct orderProduct) throws AppBusinessException;
	//
	public void cancelOrder(String orderId)throws AppBusinessException;
	//
	public List<Member>selectOrderMemberList()throws AppBusinessException;
	//
	public PageModel selectProductPm(Integer page)throws AppBusinessException;
}
